#include "queue.h"

/*  函数功能：创建一个队列
    @param capacity : 队列最大容量
    @return : 返回创建后的队列
 */
DYMQueue DYMQueueCreate(size_t capacity)
{
    DYMQueue ret = {
        .capacity = capacity,
        .buff = NULL,
        .size = 0,
        .rear = 0,
        .front = 0,
    };
    // 在下面填写你的代码


    return ret;
}

/*
    函数功能：元素进队
    @param queue：待操作队列
    @param elem: 待进队元素
    @return：返回操作结果，1：进队成功，0：队列已满（或传入参数 queue 为空、或队列 buffer 为空），进队失败 
*/
int DYMQueuePush(DYMQueue *queue,DYMQueueDataType elem)
{
    int ret = 0;
    // 在下面填写你的代码


    return ret;
}

/*
    函数功能：元素出队
    @param queue：待操作队列
    @return：返回操作结果，1：出队成功，0：队列已空（或传入参数 queue 为空、或队列 buffer 为空），出队失败 
*/
int DYMQueuePop(DYMQueue *queue)
{
    int ret = 0;
    // 在下面填写你的代码


    return ret;
}

/*
    函数功能：获取队首元素，不执行出队操作
    @param queue：待操作队列
    @param elem: 队首元素将填入这个地址 
    @return：返回操作结果，1：获取成功，0：队列为空（或传入参数 queue 为空、或队列 buffer 为空），获取失败 
*/
int DYMQueueTop(DYMQueue *queue,DYMQueueDataType *elem)
{
    int ret = 0;
    // 在下面填写你的代码


    return ret;
}

/*
    函数功能：销毁队列
    @param queue：待销毁队列
*/
void DYMQueueDestory(DYMQueue *queue)
{
    // 在下面填写你的代码

}